package difficulty.middle;

import java.util.*;

/**
 * HJ27 查找兄弟单词
 * @author d3y1
 */
public class HJ27 {

    /**
     * 单独判断
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()){
            String[] ss = scanner.nextLine().split(" ");
            Integer a = Integer.parseInt(ss[0]);
            String x = ss[ss.length-2];
            Integer k = Integer.parseInt(ss[ss.length-1]);
            List<String> list = new ArrayList<>();

            for (int i = 1; i <=a ; i++) {
                if (isBrother(x,ss[i])){
                    list.add(ss[i]);
                }
            }
            int size = list.size();
            System.out.println(size);
            if (size>=k){
                Collections.sort(list);
                System.out.println(list.get(k-1));
            }
        }
    }

    public static boolean isBrother(String x,String y){
        if (x.length()!=y.length()||y.equals(x)){
            return false;
        }
        char[] s = x.toCharArray();
        char[] j= y.toCharArray();
        Arrays.sort(s);
        Arrays.sort(j);
        return new String(s).equals(new String(j));
    }



//    /**
//     * set 子序列
//     */
//    private static HashSet<String> diffWords = new HashSet<>();
//
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//
//        while (in.hasNext()){
//            String input = in.nextLine();
//            String[] strList = input.split(" ");
//
//
//
//            int total = Integer.parseInt(strList[0]);
//            String[] words = new String[total];
//            for(int i=0; i<total; i++){
//                words[i] = strList[i+1];
//            }
//
//            String xWord = strList[total+1];
//            int index = Integer.parseInt(strList[total+2]);
//
//            generateWord(xWord, 0);
//
//            int count = 0;
//            List<String> sortSibWords = new ArrayList<>();
//            for(String word: words){
//                if(!word.equals(xWord) && diffWords.contains(word)){
//                    count++;
//                    sortSibWords.add(word);
//                }
//            }
//
//            Collections.sort(sortSibWords);
//
//            System.out.println(count);
//            if(index <= count){
//                // Object[] sibWords = sortSibWords.toArray();
//                System.out.println(sortSibWords.get(index-1));
//            }
//
//            diffWords = new HashSet<>();
//        }
//    }
//
//    private static void generateWord(String word, int i){
//        diffWords.add(word);
//        char[] chars = word.toCharArray();
//        for(int j=i; j<chars.length; j++){
//            swap(chars, i, j);
//            generateWord(String.valueOf(chars), i+1);
//            swap(chars, j, i);
//        }
//    }
//
//    private static void swap(char[] chars, int i, int j){
//        char tmp = chars[i];
//        chars[i] = chars[j];
//        chars[j] = tmp;
//    }
}
